package client.test.ihm;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.MalformedURLException;
import java.rmi.ConnectException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import client.test.singleton.SingletonConnexion;

public class OpenSelectionSujetListener implements ActionListener, KeyListener{

	JTextField nomServeur; 
	JTextField nomPseudo;
	JFrame fenetre;
	
	public OpenSelectionSujetListener(JTextField nomServeur, JTextField nomPseudo, JFrame fenetre) {
		this.nomServeur=nomServeur;
		this.nomPseudo=nomPseudo;
		this.fenetre=fenetre;
	}
	
	public void openWindow() {
		SingletonConnexion connect = SingletonConnexion.getInstance();
		
		connect.setServeur(nomServeur.getText());
		connect.setPseudo(nomPseudo.getText());
			
		try {
			connect.getServeur();
			
			IHMSelectionSujet selectWindow = new IHMSelectionSujet();
			
			selectWindow.createSelectWindow();
			
			fenetre.setVisible(false);
			
		} catch (ConnectException e1) {
			JOptionPane.showMessageDialog(fenetre, "Impossible de se connecter au serveur :\nProbleme de connexion", "Erreur", JOptionPane.WARNING_MESSAGE);
			e1.printStackTrace();
		} catch (MalformedURLException e1) {
			JOptionPane.showMessageDialog(fenetre, "Impossible de se connecter au serveur :\nL'URL n'est pas valide", "Erreur", JOptionPane.WARNING_MESSAGE);
			e1.printStackTrace();
		} catch (RemoteException e1) {
			JOptionPane.showMessageDialog(fenetre, "Impossible de se connecter au serveur :\nProbleme de connexion au serveur", "Erreur", JOptionPane.WARNING_MESSAGE);
			e1.printStackTrace();
		} catch (NotBoundException e1) {
			JOptionPane.showMessageDialog(fenetre, "Impossible de se connecter au serveur :\nLe serveur n'existe pas", "Erreur", JOptionPane.WARNING_MESSAGE);
			e1.printStackTrace();
		} 
	}
	
	@Override
	public void actionPerformed(ActionEvent arg0) {
		
		openWindow();
		
	}

	@Override
	public void keyPressed(KeyEvent arg0) {
		if(arg0.getKeyCode()==KeyEvent.VK_ENTER) {
			openWindow();
		}
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}
